home *** CD-ROM | disk | FTP | other *** search
/ PCGUIA 2010 Software/Programs / PCGuia_programas.iso / Software / Utils / Advanced SystemCare / asc-setup.exe / {app} / tb / defaults / fbAlert.js < prev   
Encoding:
Text File  |  2009-12-23  |  4.2 KB  |  139 lines

  1. <script type="text/javascript">
  2. var moreLinkText = "{0}";
  3. var moreLinkLink = "{1}";
  4. var maxHeight = {2};
  5. var maxWidth = {3};
  6. var maxLines = {4};
  7.  
  8. function isFF2() {
  9.     return (document.location.href.indexOf("file:///") == 0);
  10. };
  11.  
  12. function IsMoreLinkVisible(moreLink)
  13. {
  14.     if (moreLink.offsetTop + moreLink.offsetHeight > maxHeight ||
  15.             moreLink.offsetWidth + moreLink.offsetLeft > maxWidth)
  16.         return false;
  17.     else
  18.         return true;
  19. };
  20.  
  21. function GetMoreLinkElem() {
  22.     var more = document.createElement("a");
  23.     more.setAttribute("href", moreLinkLink);
  24.     more.setAttribute("class", "ebLink msgText");
  25.     
  26.     //add target blank for IE only
  27.     if(isFF2()) more.setAttribute("target", "_blank");
  28.     
  29.     more.innerHTML = moreLinkText;
  30.     return more;
  31. };
  32.  
  33. function AddMoreLink(oDiv, insertBeforeElement) {
  34.     var moreLinkId = "moreLinkId";
  35.     var moreLink = GetMoreLinkElem();
  36.     var htmlBlankChar = document.createElement("span");
  37.     htmlBlankChar.innerHTML = "... ";
  38.     oDiv.insertBefore(htmlBlankChar, insertBeforeElement);
  39.     oDiv.insertBefore(moreLink, insertBeforeElement);
  40.     moreLink.id = moreLinkId;
  41.     
  42.     while(oDiv.lastChild.id != moreLinkId)
  43.         oDiv.removeChild(oDiv.lastChild);
  44.     
  45.     var oElem = htmlBlankChar.previousSibling;
  46.     while (!IsMoreLinkVisible(moreLink)) {
  47.         if(oElem.tagName)
  48.             oDiv.removeChild(oElem);
  49.             
  50.         oElem = oElem.previousSibling;
  51.     }
  52. };
  53.  
  54. function CreateLinks(arrSpans)
  55. {
  56.     var isLink = function(strText) {
  57.         var strRegex = /^(http:\/\/|https:\/\/|ftp:\/\/).+/i;
  58.         return strRegex.test(strText);
  59.     };
  60.     
  61.     var checkAndCreateLink = function(objSpan) {
  62.         var strText = objSpan.innerHTML;
  63.         if(!isLink(strText)) return;
  64.         
  65.         var a = document.createElement("a");
  66.         a.setAttribute("href", strText);
  67.         a.setAttribute("class", "ebLink msgText");
  68.         if(isFF2()) a.setAttribute("target", "_blank");
  69.         a.appendChild(document.createTextNode(strText));
  70.         objSpan.innerHTML = "";
  71.         objSpan.appendChild(a);
  72.     };
  73.     
  74.     for(var i=0; i<arrSpans.length; i++)
  75.         checkAndCreateLink(arrSpans[i]);
  76. };
  77.  
  78. function CheckSize() {
  79.     var oDiv = document.getElementById("mainDiv");
  80.     var iWidth = oDiv.offsetWidth;
  81.     var iHeight = oDiv.offsetHeight;
  82.     var arrSpans = oDiv.getElementsByTagName("span");
  83.     CreateLinks(arrSpans);
  84.     var bIsAddMore = false;
  85.  
  86.     if (iHeight > maxHeight) {
  87.         bIsAddMore = true;
  88.         var linesOffSetTop = new Array(maxLines-1);
  89.         linesOffSetTop[0] = arrSpans[0].offsetTop;
  90.         
  91.         var arrLastLineSpans = new Array();
  92.         var currLine = 0;
  93.         
  94.         for (var i = 0; i < arrSpans.length; i++) {
  95.             if (arrSpans[i].offsetTop > linesOffSetTop[currLine]) {
  96.                 currLine++;
  97.                 linesOffSetTop[currLine] = arrSpans[i].offsetTop;
  98.                 
  99.                 if (currLine == maxLines - 1)
  100.                     arrLastLineSpans.push(arrSpans[i]);
  101.                 else if (currLine > maxLines - 1) {
  102.                     break;
  103.                 }
  104.             }
  105.         }
  106.         
  107.         var moreElem = GetMoreLinkElem();
  108.  
  109.         //one long word in second line
  110.         var lastLineTop = arrLastLineSpans[0].offsetTop;
  111.         if (arrLastLineSpans.length == 1 &&
  112.             arrLastLineSpans[0].offsetWidth + arrLastLineSpans[0].offsetLeft > maxWidth) {
  113.             AddMoreLink(oDiv, arrLastLineSpans[0]);
  114.         }
  115.         //few short words in second line
  116.         else {
  117.             var lastElement = arrLastLineSpans[arrLastLineSpans.length - 1];
  118.             if (lastElement.nextSibling)
  119.                 lastElement = lastElement.nextSibling;
  120.             else {
  121.                 var htmlDummy = document.createElement("span");
  122.                 oDiv.appendChild(htmlDummy);
  123.                 lastElement = htmlDummy;
  124.             }
  125.  
  126.             AddMoreLink(oDiv, lastElement);
  127.         }
  128.     }
  129.  
  130.     oDiv.style.overflow = "hidden";
  131.     oDiv.style.height = maxHeight + "px";
  132. };
  133.  
  134. function OnLoad() {
  135.     var oDiv = document.getElementById("mainDiv");
  136.     oDiv.style.width = maxWidth + "px";
  137.     CheckSize();
  138. };
  139. </script>